Peer-to-peer (P2P) communication sessions are ones established between similar endpoints, directly or through a server, without requiring control signaling from a third party signaling entity. In current voice over Internet Protocol (VoIP) implementations, a session control entity supports session control messages with the participating endpoints to establish a communication session directly between the endpoints. For peer-to-peer communication sessions, the endpoints simply communicate with each other to establish a communication session therebetween. To establish the communication session, an originating P2P endpoint must have the address of a terminating P2P endpoint. Further, both P2P endpoints must be similarly configured, connected to a network, and available for communications. If any of these conditions are not met, the communication session cannot be established. If the communication session cannot be established, alternate ways to communicate with the terminating party are often available.
In many instances, different terminals may be available, or a given terminal may be able to establish communications through different networks or communication technologies. Unfortunately, establishing an alternative communication session to the terminating party requires an alternate address associated with the same or different P2P endpoint for the terminating party. Establishment of a communication session to an alternate address for the terminating party generally requires the originating party to manually obtain and enter the alternate address in the P2P terminal and make the decision to establish a P2P communication session using the alternate address. Such requirements for establishing communications with the terminating party are time-consuming and cumbersome at best.
Accordingly, there is a need for a way to provide multiple addresses for a terminating party to an originating party, and allow the originating party's terminal to select an appropriate one of the multiple addresses to use when attempting to establish communications with the terminating party. There is a further need to allow the originating party's terminal to automatically and dynamically try alternate addresses to establish a communication session with the terminating party when a prior attempt to establish a communication session with the terminating party fails.